1. Field of the Invention
The present invention relates to a program product, method, and system for supporting a consistency test of a compiled machine code file with respect to the original version and current version of its source file. More particularly, the present invention relates to a consistency test program product, method, and system which ensure the consistency among program files used as library resources.
2. Description of the Related Art
In modern software development, programmers use various precoded library resources, a collection of fundamental, general-purpose processing functions that can be called from an application program as necessary. The use of such software modules improves the efficiency of development because programmers can concentrate their efforts to the coding of specific application functions, without worrying about the details of generic services.
A typical library building process starts with writing source codes in an appropriate programming language to describe a specific processing logic. The outcome of this step is a source file, which is then converted into an object file through a compilation process. A plurality of object files are produced in this way and subjected to a process of linking them together into an executive file. Hereafter, we will use the term “library resources” to collectively represent those source files, object files, and executive files.
To clarify the definitions, source files store a source code written by a software engineer, or programmer. Object files store an object code obtained by translating a source code into a machine code that is executable by a computer. In general, one object file is produced from one source file. Executive files store a load module of computer-executable machine code that is obtained by linking a plurality of object codes.
General computer systems store a large number of executive files as library resources because of their multipurpose nature. Application programs use precoded processing functions by calling executive codes available in the library. Those library resources, however, are modified for various reasons, including bug fixes (i.e., correcting program errors found after release) and implementation of additional capabilities. Such changes start with editing a source file. The modified source file is then recompiled, and the resulting new object file is used to create a new version of executive files.
Since source files may be changed as described above, users of library resources need to know whether their executive files at hand are up to date. To make such update information available to users, conventional systems provide in general a registry that lists source files used in creating executive files. Each time a person creates an executive file, he/she enters a record to the registry to show the association between a new executive file version and its corresponding source file versions. Managing library resources with such registries, however, is a labor-consuming, error-prone task. The problem is that it is difficult to ensure the correctness of information since people are likely to make errors or forget to write necessary things. This leads to a demand for an automated method that helps the users to test whether their local library resources reflect all modifications made to source files.